package com.treasure.service.task.service;


import com.treasure.service.task.dto.TaskSchedulerJobDto;
import org.quartz.JobDataMap;
import org.quartz.JobKey;
import org.quartz.SchedulerException;

import java.util.List;

/**
 * @Description: 
 * @version 1.0 
 * @author panxinwen 2018/10/29 16:19
 * @Copyright © 2015 | 武汉京航科技有限公司 Email:19919866605@163.com
 * */

public interface TaskSchedulerJobService {

    /**
     * 所有任务列表
     */
    public List<TaskSchedulerJobDto> queryALL();

    /**
     * 所有已初始化任务列表
     */
    public List<TaskSchedulerJobDto> list();


    // 立即触发任务
    public boolean triggerNow(JobKey jobKey, JobDataMap jobDataMap);

    /**
     * 验证是否存在
     * @param jobName
     * @param jobGroup
     * @throws SchedulerException
     * 2016年10月8日下午5:30:43
     */
    public boolean checkExists(String jobName, String jobGroup) throws SchedulerException;

    /**
     * 添加任务
     * @param jobDto
     */
    public boolean add(TaskSchedulerJobDto jobDto);

    /**
     * updStautsToUp任务
     * @param jobName
     * @param jobGroup
     */
    public boolean updStautsToUp(String jobName, String jobGroup);

    /**
     * 暂停定时任务
     * @param jobName
     * @param jobGroup
     */
    public void pause(String jobName, String jobGroup);

    /**
     * 重新开始任务
     * @param jobName
     * @param jobGroup
     */
    public void resume(String jobName, String jobGroup);

    /**
     * 删除单个任务
     * @param jobName
     * @param jobGroup
     */
    public boolean remove(String jobName, String jobGroup);


    /**
     * 启用任务
     * @param jobId
     */
    public boolean updUseStatus(Integer jobId);
    /**
     * 禁用任务
     * @param jobId
     */
    public boolean updUnUseStatus(Integer jobId);

    public void initScheduleJob();

}
